A continuación se exponen las páginas más útiles (en mi opinión) para expresiones regulares y Markdown. De cada una se discuten pros y contras basados en la facilidad tanto para navegar por las mismas, como para su comprensión y su aplicación al proyecto.
Las páginas escogidas para esta comparación son regexlib.com y cheatography.com :
Se trata de una página con un extensísimo catálogo, el cual incluye multitud de ejemplos, un tester para las expresiones y también un cheatsheet. Su utilidad radica sobre todo en su buscador por categorías, que te lleva directamente al ejemplo que necesitas (validación de email, fechas, números de teléfono, etc.). También se puede buscar usando keywords y ordenar los resultados basados en el rating de los usuarios, lo cual le da un punto más de fiabilidad. En su contra cabe decir que el diseño de la página no es muy vistoso, lo cual dificulta la navegación al principio.
Imagen 1 Pantalla Home de Regexlib.com
Se trata de un cheatsheet en pdf hecho por Dave Child. Tiene un diseño más atractivo a la vista que el cheatsheet de la anterior página y además, tiene un contenido más extenso. Encuentro más útil este estilo de página a la hora de buscar comandos siendo principiante, por su diseño en forma de tablas y su sencillez que facilitan un acceso rápido a la información requerida. En su contra, para un usuario con cierta experiencia se va a quedar corto muy rápido.
Imagen 2: Captura del cheatsheet en formato pdf de Dave Child
Para esta comparación (y para la realización del proyecto) se han utilizado las páginas bookdown.org y bootswatch.com/:
En esta página aparecen todas las características y comandos utilizados para crear un documento HTML. Aporta ejemplos del código utilizado en cada caso, por lo que es útil para principiantes también. Además, incluye links a diversos cheatsheets que sirven para cada paso del proceso. En este proyecto ha resultado útil para la creación de la Tabla de Contenidos y la inclusión de pestañas e imágenes en los distintos apartados, entre otros.
Imagen 3: Página inicial de Bookdown para un output HTML
Esta página resulta muy útil para elegir los temas que mejor se ajuste al proyecto. Incluye una explicación detallada de cada tema y de la apariencia de las diferentes partes: las tablas, pestañas, botones especiales… En su contra cabe decir que es muy específico en una sola parte de todo el proyecto, así que sin otra página que complemente el contenido no serviría para realizar un trabajo entero.
Imagen 4: Ejemplo de visualización de temas en bootswatch.com
Imagen 1 Pantalla Home de Fantasy Premier League
Para este proyecto se ha utilizado un dataset sobre el juego Fantasy de la Premier League para la temporada 2018/2019. Los juegos fantasy consisten en, partiendo de un presupuesto limitado, montar un equipo que consiga el mayor número de puntos posibles.
En este dataset, aparecen las estadísticas de la temporada 2017/2018, así que nuestro objetivo será encontrar, basándonos en esos datos, el mejor equipo posible (el que más puntos pueda dar) para la temporada 2018/2019. Los fichajes realizados en el verano de 2018 y los jugadores de los equipos recién ascendidos aparecen en el dataset, pero todas sus estadísticas tienen valor 0.
Para contabilizar los puntos, se tienen en cuenta los datos de goles anotados y asistencias, mientras que las tarjetas amarillas y rojas o los goles en propia portería cuentan negativo. En el caso de los porteros y defensas, se utiliza el número de goles concedidos por el equipo (con ellos sobre el campo) para restar puntos, mientras que para los porteros, las paradas realizadas suman puntos. De tal forma, el rendimiento individual puede compensar un pobre rendimiento colectivo.
Otros datos importantes serán: el precio del jugador en el juego, el equipo en el que juegan, minutos jugados, el TSB (porcentaje de equipos en los que aparece el jugador en cuestión) y el ICT, un medidor de valores de influencia en el juego del equipo, amenaza de cara a gol y creatividad .
Es importante remarcar que una parte de las puntuaciones también dependen de la opinión de la prensa, así que no considero este juego una ciencia exacta y objetiva. De ahí que algunas conclusiones están condicionadas por la falta de datos de estas opiniones.
A continuación, en clave general, un ejemplo de las primeras filas en forma de tabla:
| Name | Team | Position | Cost | ICT | Goals_scored | Goals_conceded | Assists | Own_goals | Saves | Yellow_cards | Red_cards | TSB | Minutes | Bonus | Points |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Adam Smith | BOU | DEF | 45 | 94.5 | 1 | 38 | 3 | 0 | 0 | 6 | 0 | 0.3 | 2067 | 3 | 56 |
| Adrian | WHU | GKP | 45 | 47.0 | 0 | 29 | 0 | 0 | 69 | 2 | 0 | 0.6 | 1710 | 5 | 72 |
| Aguero | MCI | FWD | 110 | 302.5 | 21 | 12 | 6 | 0 | 0 | 2 | 0 | 12.6 | 1960 | 22 | 169 |
| Ake | BOU | DEF | 50 | 133.5 | 2 | 59 | 3 | 0 | 0 | 5 | 0 | 5.7 | 3352 | 8 | 102 |
| Albrighton | LEI | MID | 55 | 160.2 | 2 | 42 | 8 | 0 | 0 | 5 | 1 | 1.1 | 2533 | 12 | 107 |
| Alderweireld | TOT | DEF | 60 | 36.8 | 0 | 13 | 0 | 0 | 0 | 3 | 0 | 3.6 | 1177 | 3 | 43 |
Primero, vamos a ver si el valor ICT tiene una relación directa con los puntos obtenidos:
| Name | Team | Position | ICT | Points | |
|---|---|---|---|---|---|
| 374 | Salah | LIV | MID | 454.4 | 303 |
| 222 | Kane | TOT | FWD | 407.4 | 217 |
| 108 | De Bruyne | MCI | MID | 368.9 | 209 |
| 139 | Eriksen | TOT | MID | 358.2 | 199 |
| 410 | Sterling | MCI | MID | 329.7 | 229 |
| 416 | Sanchez | MUN | MID | 326.1 | 152 |
| 180 | Hazard | CHE | MID | 317.3 | 173 |
| 148 | Firmino | LIV | FWD | 312.7 | 181 |
| 3 | Aguero | MCI | FWD | 302.5 | 169 |
| 104 | David Silva | MCI | MID | 286.5 | 169 |
| 274 | Mahrez | MCI | MID | 282.6 | 195 |
| 376 | Sane | MCI | MID | 274.4 | 179 |
| 268 | Lukaku | MUN | FWD | 273.2 | 162 |
| 9 | Alli | TOT | MID | 258.8 | 175 |
| 243 | Lacazette | ARS | FWD | 258.0 | 138 |
| 168 | Gross | BHA | MID | 257.6 | 164 |
| 386 | Shaqiri | LIV | MID | 255.2 | 155 |
| 158 | Fabregas | CHE | MID | 254.9 | 89 |
| 463 | Zaha | CRY | FWD | 251.0 | 136 |
| 402 | Son | TOT | MID | 249.1 | 178 |
Vemos que el ICT sí está relacionado con los puntos obtenidos, pero hay jugadores que con un ICT alto no han conseguido muchos puntos. Esto es probable que tenga que ver con los minutos jugados, ya que un buen jugador que no juega no aporta puntos (obviamente). La lesiones o un traspaso a mitad de temporada pueden ser los causantes de estas anomalías (caso de Cesc Fábregas, por ejemplo). También destaca que los jugadores con mejor ICT son en su mayoría mediocampistas.
Ahora se expone el top 20 de porteros en función de las paradas realizadas:
| Name | Team | Cost | Minutes | Saves | Goals_conceded | Points | |
|---|---|---|---|---|---|---|---|
| 142 | Fabianski | WHU | 45 | 3420 | 137 | 56 | 157 |
| 369 | Ryan | BHA | 45 | 3420 | 124 | 54 | 146 |
| 342 | Pickford | EVE | 50 | 3420 | 121 | 58 | 145 |
| 109 | De Gea | MUN | 60 | 3330 | 115 | 28 | 172 |
| 345 | Pope | BUR | 50 | 3114 | 113 | 35 | 152 |
| 38 | Begovic | BOU | 45 | 3420 | 111 | 61 | 112 |
| 269 | Lossl | HUD | 45 | 3420 | 103 | 58 | 135 |
| 152 | Foster | WAT | 45 | 3330 | 99 | 55 | 123 |
| 381 | Schmeichel | LEI | 50 | 2965 | 93 | 47 | 123 |
| 185 | Hennessey | CRY | 45 | 2430 | 91 | 41 | 99 |
| 74 | Cech | ARS | 50 | 3039 | 90 | 48 | 124 |
| 259 | Lloris | TOT | 55 | 3240 | 87 | 35 | 144 |
| 91 | Courtois | CHE | 55 | 3150 | 77 | 34 | 136 |
| 2 | Adrian | WHU | 45 | 1710 | 69 | 29 | 72 |
| 151 | Forster | SOU | 45 | 1800 | 69 | 30 | 73 |
| 163 | Gomes | WAT | 45 | 2128 | 61 | 40 | 64 |
| 133 | Ederson | MCI | 55 | 3195 | 58 | 26 | 158 |
| 134 | Elliot | NEW | 45 | 1440 | 44 | 21 | 57 |
| 291 | McCarthy | SOU | 45 | 1620 | 42 | 26 | 52 |
| 300 | Mignolet | LIV | 50 | 1710 | 36 | 24 | 67 |
Cabe destacar que, pese a su influencia, el portero con más puntos NO ES el que más paradas hizo, sino que los goles concedidos tienen igual o más importancia.
Y también, aquí vemos la tabla de máximos goleadores de la temporada 2017/2018:
| Name | Team | Cost | Minutes | Goals_scored | Assists | Points | |
|---|---|---|---|---|---|---|---|
| 374 | Salah | LIV | 130 | 2905 | 32 | 12 | 303 |
| 222 | Kane | TOT | 125 | 3074 | 29 | 2 | 217 |
| 3 | Aguero | MCI | 110 | 1960 | 21 | 6 | 169 |
| 427 | Vardy | LEI | 90 | 3248 | 20 | 2 | 183 |
| 410 | Sterling | MCI | 110 | 2584 | 18 | 17 | 229 |
| 268 | Lukaku | MUN | 110 | 2866 | 16 | 7 | 162 |
| 148 | Firmino | LIV | 95 | 2760 | 15 | 8 | 181 |
| 243 | Lacazette | ARS | 95 | 2197 | 14 | 5 | 138 |
| 211 | Jesus | MCI | 105 | 1660 | 13 | 7 | 126 |
| 180 | Hazard | CHE | 105 | 2417 | 12 | 6 | 173 |
En este caso, la correlación puntos/goles es más lineal. Sólo un caso extraordinario (Sterling dio 17 asistencias con 18 goles anotados) sobrepasa con creces a otros jugadores con varios goles más.
Por último, vamos a ver qué jugadores fueron los más elegidos por los usuarios a la hora de confeccionar su equipo:
| Name | Team | Cost | TSB | Points | |
|---|---|---|---|---|---|
| 374 | Salah | LIV | 130 | 47.5 | 303 |
| 148 | Firmino | LIV | 95 | 37.7 | 181 |
| 222 | Kane | TOT | 125 | 33.4 | 217 |
| 463 | Zaha | CRY | 70 | 30.9 | 136 |
| 109 | De Gea | MUN | 60 | 30.2 | 172 |
| 108 | De Bruyne | MCI | 100 | 27.6 | 209 |
| 425 | Trippier | TOT | 60 | 26.1 | 113 |
| 19 | Aubameyang | ARS | 110 | 25.0 | 87 |
| 16 | Arnautovic | WHU | 70 | 24.4 | 144 |
| 142 | Fabianski | WHU | 45 | 23.3 | 157 |
| 273 | Maguire | LEI | 55 | 22.1 | 117 |
| 342 | Pickford | EVE | 50 | 21.6 | 145 |
| 307 | Mkhitaryan | ARS | 70 | 20.1 | 107 |
| 376 | Sane | MCI | 95 | 18.4 | 179 |
| 98 | Daniels | BOU | 45 | 17.3 | 94 |
| 10 | Alonso | CHE | 65 | 16.9 | 165 |
| 139 | Eriksen | TOT | 95 | 16.9 | 199 |
| 7 | Alexander-Arnold | LIV | 50 | 16.8 | 83 |
| 133 | Ederson | MCI | 55 | 16.6 | 158 |
| 364 | Robertson | LIV | 60 | 16.1 | 111 |
Vemos que, en general, el usuario elige con buen criterio a sus jugadores. Hay casos que destacan, como el de Aubameyang. Este jugador estaba en el 25% de los equipos pero aparece un dato de puntos muy bajo. Esto se debe a que llegó a la Premier League en Enero, así que su elección está justificada.
Para esta sección vamos a relacionar diversas variables que nos pueden ayudar a prever el rendimiento de los jugadores y así conformar el equipo más competitivo posible.
Primero, ¿de qué equipo debo elegir jugadores si quiero más puntos?
De aquí sacamos la conclusión de que, para nuestros jugadores ofensivos, deberíamos ir a por el máximo número de jugadores posible del tradicional TOP 6 (Manchester City, Liverpool, Chelsea, Manchester United, Tottenham y Arsenal) ya que aseguran más puntos. Encontrar el equilibrio presupuestario entre estos jugadores y los de los equipos más pequeños es donde radica la dificultad del juego.
Podemos observar que el portero con más puntos es también el más caro (Ederson, del Manchester City). Sin embargo, de cara a optimizar nuestros recursos, las opciones más recomendables son casualmente (o no) los porteros que aparecían en cabeza de la clasificación previamente vista de más paradas realizadas: Fabianski, del West Ham y Ryan, del Brighton & Hove Albion, ambos de equipos más humildes que, al recibir más tiros, tienen más opciones de “lucirse”.
Para encontrar a los mejores defensas, vamos primero a contrastar si el equipo menos goleado tiene los defensas con más puntos
Vemos que en general sí, los dos equipos menos goleados (los dos de Manchester) tienen los defensas más caros porque son los que más puntos tienen. También que los equipos pequeños tienen defensas con buena relación puntos/precio pese a ser más goleados. Habrá que buscar el equilibrio.
Por su posición y función, los defensas son los jugadores más sancionados con tarjetas. Vamos a ver como afectan las tarjetas amarillas a los puntos a final de temporada.
Destaca que el defensa mejor puntuado sea uno de los menos amonestados. Es César Azpilicueta, jugador del Chelsea, que solo fue amonestado una vez en toda la temporada. Además, el segundo defensa mejor puntuado es casualmente otro español del Chelsea: span style=“color:yellow”>Marcos Alonso.
Para terminar con los defensas, veamos si esos defensas de equipos más pequeños son buenos en relación calidad/precio, y también si César Azpilicueta es una opción rentable.
Esta distribución llama la atención a primera vista, ya que parece claro que la calidad de los defensas se paga.
Para elegir los mejores mediocampistas, nos fijaremos en el ICT, que como vimos antes es un campo donde destacan por encima del resto de posiciones.
Aquí se ve que los mejores equipos tienen los jugadores con más ICT (salvo un par de excepciones) y también, los más caros. Veamos ahora la relación entre su contribución al marcador (goles y asistencias) y su ICT:
Vemos una vez más que Mohammed Salah, del Liverpool fue el mejor jugador de la temporada, y cualquier equipo que lo fiche tendrá previsiblemente muchos puntos asegurados. Sterling y Kevin De Bruyne, del Manchester City también se antojan como muy buenos jugadores franquicia.
Para acabar el análisis de los mediocampistas, veamos su relación puntos/precio:
Una vez más, una relación muy lineal. Como la opción más rentable, destaca el mediocampista del Brighton & Hove Albion, Pascal Groß.
Para elegir a nuestros delanteros, vamos a tener en cuenta que no se pueden fichar dos que valgan mucho y no tener dinero para el resto del equipo. Por tanto, vamos a relacionar primero los goles/precio y también goles/minutos jugados.
Teniendo en cuenta las dos gráficas, destaca sobre todo el caso de Jamie Vardy, jugador del Leicester, ya que es el más rentable en relación goles/precio y además fue el que más minutos jugó de los máximos goleadores. El caso de Kun Agüero, delantero del Manchester City también es destacable, pero no por ello recomendable, ya que pese a tener el mejor ratio goles/minutos, lo es porque jugó 1000 minutos menos que sus competidores, siendo además su precio uno de los más altos de todo el juego. Gastar tantos recursos en un jugador que se pierde tantos partidos puede salir muy bien si no se lesiona, pero ciertamente es arriesgado.